Internet Service Providers (ISPs) provide Internet access to clients. Such clients are typically home clients, but may also be business or high-speed clients. For example, an ISP may provide dial-up support to a home client, while providing cable or Digital Subscriber Line (DSL) support to another home client, or may provide any of these or other services, such as for example T1 or T3 connectivity, to business clients.
One method of providing Internet access to a client is for an ISP to install and operate equipment in the area in which the client is located. Alternatively, an ISP may install and operate sufficient equipment to service its clients regardless of the location of such clients. Such methods permit an ISP to exercise direct control over such equipment, thereby allowing the ISP to precisely control quality of service to its clients. However, such methods also have the limitation of requiring the ISP desiring to provide services over a large geographic area to install and maintain equipment capable of servicing such an area. When the geographic area to be serviced is especially large, such as for example in a situation where the ISP desires to provide regional or even nationwide Internet services, the amount of equipment and associated costs, such as for example procurement, maintenance, management and staffing costs, increases rapidly. In fact, in an extreme case the costs involved with implementing such a system may exceed the financial or management capacity of any single ISP.
A more practical method of providing such large-scale Internet access is for an ISP to enter into an agreement with one or more local communications providers to provide connective services to clients on behalf of the ISP. For example, a large, nationally-recognized ISP may contract with a plurality of local communications providers so such ISP does not have to deploy equipment throughout a nation or region. In this way, the ISP can have broad geographic coverage without the difficulty and expense of actually maintaining a large network. Instead, such an ISP exerts control over such local communications providers according to such contract or other agreement to provide service to clients that meets certain ISP criteria. Each local communications provider may exclusively cover a distinct geographic area or, and as is more common in heavily populated areas, several local communications providers may simultaneously cover the same geographic area. An ISP providing dial-up service in such an area by way of multiple local communications providers, for example, may assign clients to different local communications providers by assigning different telephone numbers for the clients to dial. The assignment of clients to different local communications providers may take place according to a contract or other agreement, as discussed above. Using such a method, an ISP may use several local communications providers to provide service to a populated area, even in a situation where each of such local communications providers may not have sufficient capacity to individually provide complete service to such an area. An additional aspect of such an arrangement is that such arrangement may be transparent to clients in that it appears to the clients that such connective services are being rendered directly by the ISP and not by a local communications provider on behalf of the ISP. In this way, a local communications provider may benefit from an ISP's name recognition while an ISP gains capacity it would not otherwise have.
In contracting such Internet services to local communications providers, an ISP typically monitors each local communications provider to track performance data, such as for example: the time of a connection attempt, whether such attempt was successful, the time of a connect and disconnect, a number of clients being serviced at a certain time, and/or the like. Such performance data provides to the ISP an approximate indication of service quality provided to clients by each local communications provider because such data is relevant to clients' experience with such local communications provider. Typically, an ISP will want its local communications providers to operate within certain thresholds of service quality. This is particularly important in situations where an ISP—local communications provider relationship is transparent to a client as discussed above. In such a situation, a client who receives poor service quality from a local communications provider may ascribe such poor service quality to the ISP, from which such client believes such connective services are rendered. Such thresholds used by an ISP may be, for example, a percentage of successful connection attempts out of all connection attempts, average percentage of capacity in use, client wait time, average signal quality, data transmission speed, and/or the like. Each local communications provider may also exhibit a different response to increasing client load. For example, a local communications provider with a smaller client capacity may experience a faster drop-off in service quality than a local communications provider with a larger client capacity. Such local communications provider responses may be determined from historical performance data, hardware data regarding each local communications provider and/or the like.
Additionally, an ISP may acquire performance data from individual clients. For example, an ISP may configure its system to cause a client to log connection information such as for example, connection attempts, successful or unsuccessful attempts, disconnects, data speed during connection, and/or the like. When a client connects to the Internet, such an ISP may request such performance data from the client's system. Such a request may be transparent to the client or may require the active participation of the client, such as for example providing permission to the ISP to receive such performance data. Such a transmission of performance data from a client system may occur every time a client connects to the Internet, at set times, according to system requirements, and/or the like.
Regardless of the source of such performance data, an ISP may use such performance data as a basis for periodically reassigning one or more clients amongst such local communications providers to load balance as between local communications providers in a geographic area. Such a reassignment may be accomplished in any number of ways. For example, a dial-up ISP may change the assignment of a local communications provider while a client is connected to the Internet. In such a method, an update may be sent by the ISP to the client, whereby the update changes the dial-up number(s) for such client to reflect the new local communications provider assignment. Other methods may include manual updates and/or the like.
An ISP may decide to change a local communications provider assignment for any number of reasons. For example, a particular local communications provider may not be capable of adequately handling the client demand it is experiencing, so the ISP may change the assignment to another local communications provider having adequate capability to satisfy additional client load. Likewise, a particular local communications provider may be underutilized, so the ISP may change the assignment of a client associated with another local communications provider to increase the underutilized local communications provider's client load. Also, an ISP may be able to consolidate the number of local communications providers it is using if client demand is such that fewer local communications providers could handle the demand without adversely affecting either the ability of clients to connect or connection quality. An additional factor that may influence an ISP in deciding to reassign clients to a different local communications provider may be the contract price and other details of a contract with such local communications provider. Such a price, for example, may affect the relative weighting of the thresholds of service quality discussed above. In addition, such a reassignment may be subject to a contract or other agreement as discussed above. An added complication is that an ISP cannot simply reassign all clients to the lowest-cost local communications provider without the risk that such a reassignment will either overload such local communications provider, or will at least lower the probability of a client successfully connecting to such local communications provider.
Conventionally, when determining whether to reassign clients amongst local communications providers, an ISP reviews, for example, each local communications provider's performance data, such provider's performance with respect to thresholds of service quality and/or the like. An ISP, however, presently lacks a means for accurately and automatically determining time-independent load balancing from such performance data and the like.
In contrast, a conventional method of reassigning client load typically entails a manual review of such performance data and the like, and then a decision is made with respect to such reassignment. Such decision, while based on performance data and the like, still retains a large element of guesswork. For example, such performance data typically has time as a factor, such as for example: connection rates per hour, connection rates varying continuously over time, and/or the like. As a result, any reassignment decision is based on time-specific data has been found to be overly complex. In addition, such a manual process is inherently inefficient because a manual review takes a greater amount of timer than an automated calculation, and therefore a manual calculation can be performed less frequently during any given period of time. What is needed is a method for automatically performing load balancing based on time-independent performance data.